package com.young.design.pattern.factory.factorymethod;


import com.young.design.pattern.factory.Shape;

/**
 * 抽象工厂接口，负责规范工厂类的行为（方法）
 *
 * 其实际效果就是不再将所有的产品都交给一个工厂类的创建，而是将不同的产品交由不同的工厂来创建，只不过这些工厂都实现了一个公共的接口而已
 *
 * 工厂方法模式，解决了简单工厂模式新增类就要修改工厂类代码的问题，使得代码设计符合了开闭原则。
 * 但是它同样带来了一个问题。当产品种类越来越多的时候，就需要根据的抽象工厂实现，这样就会导致系统出现类爆炸
 */
public interface FactoryMethod {
    Shape createShape();
}
